//
//  main.c
//  顺序栈‘
//
//  Created by mac on 16-3-29.
//  Copyright (c) 2016年 zmx. All rights reserved.
//

#include <stdio.h>
#include <stdlib.h>
typedef struct Sstack{
    int * top;//栈顶
    int * bottom;//栈底
    int * stacksize;//栈的空间大小
    
}Sstack;
Sstack init_stack(void){
    Sstack s;
    //给栈底分配空间
    s.bottom =(int*)malloc(40*sizeof(int));
    //如果分配空间失败，提示并退出
    if (!s.bottom) {
        printf("内存分配失败!\n");
        exit(0);
    }//将栈置空
    s.top=s.bottom;
   //设置栈的当前空间大小
    s.stacksize = 40;
    return s;
    
} //设置(压栈.进栈)操作
void push(Sstack s,int e){
    //判断栈是否已经满了,如果栈满,需要增加存储空间
    if(s.top-s.bottom>=s.stacksize){
        //满栈了,需要重新分配空间
        s.bottom=(int *)malloc((*s.stacksize)*sizeof(int));
    }if (!s.bottom) {
        printf("内存分配失败!\n");
        exit(0);
    }else{
        s.top=*s.bottom + s.stacksize;
        //
        s.stacksize++;
    }
    *s.top=e;
    s.top++;
    
}//出栈操作
int pop(Sstack s){
    if (s.top==s.bottom) {
        printf("该栈为空,不允许设置！\n");
        exit(0);
    }//将栈顶指针－1
    s.top--;
    //将栈顶
    return *s.top;
}
int main(int argc, const char * argv[])
{
    Sstack s=int_stack;
    

}

